package com.cmwa.scbp.sys.organization.dao;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cmwa.scbp.base.annotation.MybatisDao;
import com.cmwa.scbp.base.mvc.dao.BaseDao;
import com.cmwa.scbp.base.mvc.entity.SearchParam;
import com.cmwa.scbp.sys.organization.entity.OrganizationVo;
import com.cmwa.scbp.sys.permission.dataAuthority.entity.RoleVo;

@MybatisDao
public interface OrganizationDao extends BaseDao<RoleVo> {

	/**
	 * 根据父ID查询组织子列表
	 * 
	 * @param orgId
	 * @return
	 */
	List<OrganizationVo> queryOrganizationListByParentId(@Param("parentId") String parentId);

	/**
	 * 根据组织ID查询岗位列表
	 * 
	 * @param orgId
	 * @return
	 */
	List<OrganizationVo> queryStationListByOrgId(@Param("orgId") String orgId);

	/**
	 * 查询用户的组织
	 * 
	 * @param empId
	 * @return
	 */
	List<OrganizationVo> queryOrgByEmpId(@Param("empId") String empId);

	/**
	 * 根据组织名查询
	 * 
	 * @param orgId
	 * @return
	 */
	List<OrganizationVo> queryOrgListByOrgName(@Param("orgName") String orgName);

	List<OrganizationVo> queryOrgTreeList();

	void insertOutOrg(OrganizationVo org);

	/**
	 * 根据orgId查询部门信息
	 * @author ex-hejm
	 * @date 2019年2月19日下午5:49:51
	 * @param orgId
	 * @return
	 */
	OrganizationVo getByOrgId(@Param("orgId") String orgId);

	int countByCondition(HashMap<String, Object> param);

	void updateOrgName(@Param("orgId")String orgId, @Param("orgName")String orgName);

	int checkRepeatOrgName(@Param("orgId")String orgId, @Param("orgName")String orgName);

	List<OrganizationVo> queryOrgChilds(SearchParam sp);

	List<OrganizationVo> queryTitleChilds(SearchParam sp);

	/**
	 * 他人勿用，前端特殊处理了的
	 * @author ex-hejm
	 * @date 2019年2月25日下午3:26:09
	 * @param orgId
	 * @param titleId
	 * @return
	 */
	int checkRepeatTitleId(@Param("orgId")String orgId, @Param("titleId")String titleId);

}
